#include<iostream>

const int size = 10;




class ArrayQueue
{
private:
    int queue[size];
    int front;//队头指针
    int rear; //队尾指针
public:
    ArrayQueue():front(0),rear(0){}


     //入队列
     void Push(int data)
     {
        // if(rear == size)
        // {
        //     std::cout<<"队列满了!\n";
        //     return;
        // }
        if((rear + 1)%size == front)
        {
            std::cout<<"队列满了\n";
            return;
        }
        queue[rear++] = data;
        rear %= size;
     }


     //出队列

     void Pop()
     {
        if(front == rear)
        {
            std::cout<<"队列为空\n";
            return;
        }
        front++;
        front %= size;

     }

    bool IsEmpty()
    {
        return front == rear;
    }


    int* GetFront()
    {
        return &queue[front];
    }

};







// int main()
// {
//     ArrayQueue q;
//     for(int i=0;i<10;i++)
//         q.Push(i+1);
    
//     while(!q.IsEmpty())
//     {
//         std::cout<<*q.GetFront()<<" ";
//         q.Pop();
//     }
//     std::cout<<std::endl;
    




        
//     for(int i=0;i<10;i++)
//         q.Push(i+2);
    
//     while(!q.IsEmpty())
//     {
//         std::cout<<*q.GetFront()<<" ";
//         q.Pop();
//     }
//     std::cout<<std::endl;

//     return 0;
// }




